// 块缓存结构定义

#ifndef __BUF_H__
#define __BUF_H__

#include "types.h"
#include "spinlock.h"
#include "fs/sleeplock.h"
#include "fs/fs.h"

struct buf {
  int valid;   // 缓存是否有效
  int disk;    // 是否需要写回磁盘
  uint dev;    // 设备号
  uint blockno; // 块号
  struct sleeplock lock; // 保护缓存内容
  uint refcnt;  // 引用计数
  struct buf *prev; // LRU链表
  struct buf *next; // LRU链表
  uchar data[BSIZE]; // 实际数据
};

#endif // __BUF_H__